package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 服务日志 与服务1对1关联st_plan_details对象 st_service_log
 *
 * @author shihx
 * @date 2020-03-09
 */
@ApiModel(value = "ServiceLog", description = "服务日志实体") // 用来描述封装的参数对象与返回的参数对象
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ServiceLog extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键", name = "id", required = true, dataType = "Long", example = "主键")
    private Long id;

    /**
     * st_plan_details表主键
     */
    @Excel(name = "st_plan_details表主键")
    @ApiModelProperty(value = "st_plan_details表主键", name = "stPlanId", required = true, dataType = "Long", example = "st_plan_details表主键")
    private Long stPlanId;

    /**
     * 服务派单主键ID（st_service_notice表主键）
     */
    @Excel(name = "服务派单主键ID", readConverterExp = "st_service_notice表主键")
    @ApiModelProperty(value = "服务派单主键ID", name = "serviceNoticeId", required = true, dataType = "Long", example = "服务派单主键ID")
    private Long serviceNoticeId;

    /**
     * 服务通知号（服务通知主键）
     */
    @Excel(name = "服务通知号", readConverterExp = "服务通知主键")
    @ApiModelProperty(value = "服务通知号", name = "serviceNo", required = true, dataType = "String", example = "服务通知号")
    private String serviceNo;

    /**
     * 工程师FSE的主键ID
     */
    @Excel(name = "工程师FSE的主键ID")
    @ApiModelProperty(value = "工程师FSE的主键ID", name = "fseId", required = true, dataType = "String", example = "工程师FSE的主键ID")
    private String fseId;

    /**
     * 工程师姓名
     */
    @Excel(name = "工程师姓名")
    @ApiModelProperty(value = "工程师姓名", name = "fseName", required = true, dataType = "String", example = "工程师姓名")
    private String fseName;

    /**
     * 接受任务时间
     */
    @Excel(name = "接受任务时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "接受任务时间", name = "acceptTime", required = true, dataType = "Date", example = "接受任务时间")
    private Date acceptTime;

    /**
     * 到达现场时间
     */
    @Excel(name = "到达现场时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "到达现场时间", name = "arriveTime", required = true, dataType = "Date", example = "到达现场时间")
    private Date arriveTime;

    /**
     * 工作开始时间
     */
    @Excel(name = "工作开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "工作开始时间", name = "startTime", required = true, dataType = "Date", example = "工作开始时间")
    private Date startTime;

    /**
     * 工作结束时间
     */
    @Excel(name = "工作结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "工作结束时间", name = "endTime", required = true, dataType = "Date", example = "工作结束时间")
    private Date endTime;

    /**
     * 工作小时数
     */
    @Excel(name = "工作小时数")
    @ApiModelProperty(value = "工作小时数", name = "workHour", required = true, dataType = "Double", example = "工作小时数")
    private Double workHour;

    /**
     * 旅途小时数
     */
    @Excel(name = "旅途小时数")
    @ApiModelProperty(value = "旅途小时数", name = "journeyHour", required = true, dataType = "Double", example = "旅途小时数")
    private Double journeyHour;

    /**
     * 工作内容
     */
    @Excel(name = "工作内容")
    @ApiModelProperty(value = "工作内容", name = "workContent", required = true, dataType = "String", example = "工作内容")
    private String workContent;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @ApiModelProperty(value = "删除标志（0代表存在 2代表删除）", name = "delFlag", required = true, dataType = "String", example = "删除标志（0代表存在 2代表删除）")
    private String delFlag;


    /**
     * 关联的服务报告号（st_service_report）
     */
    @Excel(name = "关联的服务报告号", readConverterExp = "st_service_report")
    @ApiModelProperty(value = "关联的服务报告号", name = "reportId", required = true, dataType = "String", example = "关联的服务报告号")
    private String reportId;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "出发时间", name = "departureTime", required = true, dataType = "String", example = "出发时间")
    private Date departureTime;

    @ApiModelProperty(value = "填写日志次数", name = "flag", required = true, dataType = "int", example = "填写日志次数")
    private int flag;

    private String instSn; //仪器序列号
    private String syncFlag;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setStPlanId(Long stPlanId) {
        this.stPlanId = stPlanId;
    }

    public Long getStPlanId() {
        return stPlanId;
    }

    public void setServiceNoticeId(Long serviceNoticeId) {
        this.serviceNoticeId = serviceNoticeId;
    }

    public Long getServiceNoticeId() {
        return serviceNoticeId;
    }

    public void setServiceNo(String serviceNo) {
        this.serviceNo = serviceNo;
    }

    public String getServiceNo() {
        return serviceNo;
    }

    public void setFseId(String fseId) {
        this.fseId = fseId;
    }

    public String getFseId() {
        return fseId;
    }

    public void setFseName(String fseName) {
        this.fseName = fseName;
    }

    public String getFseName() {
        return fseName;
    }

    public void setAcceptTime(Date acceptTime) {
        this.acceptTime = acceptTime;
    }

    public Date getAcceptTime() {
        return acceptTime;
    }

    public void setArriveTime(Date arriveTime) {
        this.arriveTime = arriveTime;
    }

    public Date getArriveTime() {
        return arriveTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setWorkHour(Double workHour) {
        this.workHour = workHour;
    }

    public Double getWorkHour() {
        return workHour;
    }

    public void setJourneyHour(Double journeyHour) {
        this.journeyHour = journeyHour;
    }

    public Double getJourneyHour() {
        return journeyHour;
    }

    public void setWorkContent(String workContent) {
        this.workContent = workContent;
    }

    public String getWorkContent() {
        return workContent;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setReportId(String reportId) {
        this.reportId = reportId;
    }

    public String getReportId() {
        return reportId;
    }

    public Date getDepartureTime() {
        return departureTime;
    }

    public void setDepartureTime(Date departureTime) {
        this.departureTime = departureTime;
    }

    public int getFlag() {
        return flag;
    }

    public void setFlag(int flag) {
        this.flag = flag;
    }

    public String getInstSn() {
        return instSn;
    }

    public void setInstSn(String instSn) {
        this.instSn = instSn;
    }

    public String getSyncFlag() {
        return syncFlag;
    }

    public void setSyncFlag(String syncFlag) {
        this.syncFlag = syncFlag;
    }

    @Override
    public String toString() {
        return "ServiceLog{" +
                "id=" + id +
                ", stPlanId=" + stPlanId +
                ", serviceNoticeId=" + serviceNoticeId +
                ", serviceNo='" + serviceNo + '\'' +
                ", fseId='" + fseId + '\'' +
                ", fseName='" + fseName + '\'' +
                ", acceptTime=" + acceptTime +
                ", arriveTime=" + arriveTime +
                ", startTime=" + startTime +
                ", endTime=" + endTime +
                ", workHour=" + workHour +
                ", journeyHour=" + journeyHour +
                ", workContent='" + workContent + '\'' +
                ", delFlag='" + delFlag + '\'' +
                ", reportId='" + reportId + '\'' +
                ", departureTime=" + departureTime +
                ", flag=" + flag +
                ", instSn='" + instSn + '\'' +
                ", syncFlag='" + syncFlag + '\'' +
                '}';
    }
}
